✨ Proje Özeti ve Mühendislik Yaklaşımı
Bu proje, modern backend mimarilerinde karşılaşılan yüksek trafik ve veri tutarlılığı problemlerine çözüm sunmak amacıyla geliştirilmiştir. **NodePulse**, sadece veri kaydeden bir sistem değil, Redis caching stratejileri ve çok katmanlı güvenlik önlemleriyle donatılmış, ölçeklenebilir bir **RESTful API** altyapısıdır.
Kullanılan Temel Teknolojiler:
- Node.js & Express
- MongoDB Atlas (NoSQL)
- Redis (Caching)
- Joi (Data Validation)
- Winston (Logging)
- Rate Limiting & Helmet
- MVC Architecture
Sistem Analizi ve Log Akışı
Backend operasyonlarının doğruluğunu ve performansını gösteren sistem çıktıları aşağıda incelenebilir.
1. Kritik Çözüm: Redis Caching ve Invalidation
Veritabanı maliyetlerini düşürmek ve kullanıcı deneyimini iyileştirmek için çift katmanlı bir veri okuma stratejisi uygulanmıştır.
Akıllı Önbellekleme Stratejisi
Kullanıcı istatistikleri sorgulandığında, sistem önce Redis belleğini kontrol eder. Veri mevcutsa milisaniyeler içinde döner. Veri mevcut değilse (Cache Miss), MongoDB'den çekilerek Redis'e işlenir.
Veri Tutarlılığı (Cache Invalidation)
En kritik mühendislik çözümlerinden biri şudur: **Kullanıcının puanı veya bilgisi güncellendiğinde, Redis üzerindeki eski kayıt anında silinir.** Bu sayede kullanıcının her zaman güncel veriyi görmesi garanti altına alınmış olur.
2. Güvenlik ve Veri Doğrulama (Validation)
API güvenliği, istek sunucuya ulaştığı andan itibaren çok katmanlı bir kontrolden geçer.
Joi Middleware Entegrasyonu
Gelen istek gövdeleri (request body), Controller katmanına ulaşmadan önce Joi şemalarıyla doğrulanır. Hatalı e-posta formatı, yetersiz karakter sayısı gibi durumlar veritabanına ulaşmadan **400 Bad Request** ile geri çevrilir.
Sistem Koruması (Rate Limiting)
Brute-force saldırılarını önlemek amacıyla her IP adresi için belirli bir süre zarfında yapılabilecek istek sayısı sınırlandırılmıştır.
3. Dinamik İş Mantığı: Seviye Algoritması
Uygulama, ham veri kaydetmenin ötesinde bir "iş zekasına" sahiptir.
Otomatik Seviye Atlatma (Level Up)
Kullanıcıların puanları güncellendiğinde, sistem arka planda otomatik olarak puan kontrolü yapar:
- 500+ Puan: Gold
- 1000+ Puan: Pro
- 2000+ Puan: Elite
4. İzlenebilirlik ve Hata Yönetimi
Winston ile Profesyonel Loglama
Uygulamada meydana gelen tüm kritik olaylar ve hatalar `winston` kütüphanesi ile loglanır. Hatalar `error.log` dosyasında, genel akış ise `combined.log` dosyasında asenkron olarak saklanır.
Merkezi Hata Yakalayıcı (Global Error Handler)
Tüm `try-catch` bloklarından fırlatılan hatalar merkezi bir middleware'de toplanır. Bu, uygulamanın çökmesini engeller ve kullanıcıya her zaman standart, temiz bir JSON hata mesajı dönmesini sağlar.